
#ifndef _JEU_H
#define _JEU_H

/**
 * @file Jeu.h
 * @brief Contient la structure Jeu et ses fonctions
 * @details liste des fonctions pour le module Jeu
 * @version 1.0
 * @date 2013/05/16
*/
#include "Joueur.h"
#include "Plateau.h"
#include "listeCarte.h"


/**
 * @struct Jeu structure jeu
 * @brief Structure Jeu
 * @details	la structure contient: un Plateau, un Joueur et un Des.
 * @param plat le plateau du jeu
 * @param jou le joueur
 * @param des le des a lancer
*/
typedef struct
{
    int nombrePlateaux;
    Plateau ** plateaux;
    int nbrJ;
    Joueur ** jou;
    int joueurActu;
    Pioche * pioche;
    Pioche * bonusBU;
    Pioche * bonusRU;
    Pioche * bonusCYBER;
    Pioche * bonusTRICHE;
    Des * des;
    int etatJeu;
}Jeu;

Jeu * creerJeu(const int, const int);
void initJeu(Jeu *, const int, const int);
void libereJeu(Jeu *);
void detruitJeu(Jeu **);

void remplirPlateau(Plateau *, const int);
void joueurUnTour(Jeu *);
int testFinJeu(const Jeu *);
void joueurSuivant(Jeu *jeu);
bool bilanJoueur(Jeu *);
void consequenceCarteJoueur(Carte * C, Joueur * j);
void enleverCarteMain(Joueur *jou, const int pos);


#endif
